package com.ruoyi.custservice.mapper;

import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.List;

import com.ruoyi.bizsys.domain.ExtPaystackReservedAccounts;
import com.ruoyi.bizsys.domain.RealNameAuthLog;
import com.ruoyi.bizsys.domain.RuleOut;
import com.ruoyi.bizsys.vo.MonnifyReservedAccount;
import com.ruoyi.custservice.domain.*;
import org.apache.ibatis.annotations.Mapper;

@Mapper
public interface CustomerMapper {

	List<CustomerRsp> selectCustomerList(CustomerRsp customer);

	CustomerRsp selectCustomerInfoByCustNo(String custNo);

	/**
	 * 查询借款申请
	 *
	 * @param id 借款申请ID
	 * @return 借款申请
	 */
	public LoanOrderVO selectLoanOrderInfo(Long id);

	/**
	 * 查询借款申请列表
	 *
	 * @param loanOrder 借款申请
	 * @return 借款申请集合
	 */
	public List<LoanOrderVO> selectLoanOrderList(LoanOrderVO loanOrder);


	/**
	 * 查询出用户现在和之前的等级
	 * @param custNo
	 * @return
	 */
	ArrayList<RuleOut> selectNowAndBeforeCreditRating(String custNo);

	/**
	 * 查询银行卡号和银行名称
	 */
    List<BankRsp> findBankByCustNo(String custNo);

    // 查询出用户绑卡记录
	List<BindBankLogRsp> findBindBankLogByCustNo(String custNo);

	// 根据借据流水号查询出所有的还款记录
	List<RepaymentOrderRsp> findRepaymentOrderByLoanSerialNo(String loanSerialNo);

	// 查询是否存在数据
	IsExistRsp selectIsExist(String custNo);

   // 根据订单流水号查询出来还款的总金额
	BigDecimal findAllRepaid(String loanSerialNo);

	// 查询出来不脱敏的手机号
	String selectRegisterByCustNo(String custNo);

	// 查询出来邀请码的状态
	String selectInviteStatus(String recommendCode);

	// 查询出accountNumber 和 bvn
	BankRsp selectParam(Integer id);

	// 根据用户customer_no查询出来所有的实名认证信息
	List<RealNameAuthLogRsp> findListByCustNo(String custNo);

	/**
	 * 根据cust_no查询出来授信申请记录
	 */
	List<CreditApplyRsp> findCreditListByCustNo(String custNo);

	// 查询实名认证表里是否有数据
	int selectRealNameAuth(String custNo);

	CustomerRsp findAppUserInfo(String userId);

	String selectLoanState(String custNo);

	String selectApplyState(String custNo);

	CustomerRsp findRealNameInfo(String custNo);

	String findAppVersion(String userId);

	CustomerRsp findCreditAccountInfo(String custNo);

	BigDecimal findInterest(String custNo);

	String findApplyStatus(String custNo);

	CustomerRsp findLoanStatus(String custNo);

	String findTag(String userId);

	ExtPaystackReservedAccounts getVaReservedAccount(String custNo);
}
